Meta-Object Facility
   HOME

TheInfoList



OR:

The Meta-Object Facility (MOF) is an
Object Management Group The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable and interoperab ...
(OMG) standard for
model-driven engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract ...
. Its purpose is to provide a
type system In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
for entities in the CORBA architecture and a set of interfaces through which those types can be created and manipulated. The official reference page may be found at OMG's website.


Overview

MOF was developed to provide a
type system In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
for use in the CORBA architecture, a set of schemas by which the structure, meaning and behaviour of objects could be defined, and a set of CORBA interfaces through which these schemas could be created, stored and manipulated. MOF is designed as a four-layered architecture. It provides a meta-meta model at the top layer, called the M3 layer. This M3-model is the language used by MOF to build metamodels, called M2-models. The most prominent example of a Layer 2 MOF model is the UML metamodel, the model that describes the UML itself. These M2-models describe elements of the M1-layer, and thus M1-models. These would be, for example, models written in UML. The last layer is the M0-layer or data layer. It is used to describe real-world objects. Beyond the M3-model, MOF describes the means to create and manipulate models and metamodels by defining CORBA interfaces that describe those operations. Because of the similarities between the MOF M3-model and UML structure models, MOF metamodels are usually modeled as UML class diagrams. A supporting standard of MOF is XMI, which defines an XML-based exchange format for models on the M3-, M2-, or M1-Layer.


Metamodeling architecture

MOF is a ''closed'' metamodeling architecture; it defines an M3-model, which conforms to itself. MOF allows a ''strict'' meta-modeling architecture; every model element on every layer is strictly in correspondence with a model element of the layer above. MOF only provides a means to define the structure, or abstract syntax of a language or of data. For defining metamodels, MOF plays exactly the role that EBNF plays for defining programming language grammars. MOF is a
Domain Specific Language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
(DSL) used to define metamodels, just as EBNF is a DSL for defining grammars. Similarly to EBNF, MOF could be defined in MOF. In short, MOF uses the notion of MOF::Classes (not to be confused with UML::Classes), as known from object orientation, to define concepts (model elements) on a metalayer. MOF may be used to define object-oriented metamodels (as
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
for example) as well as non object-oriented metamodels (as a Petri net or a Web Service metamodel). As of May 2006, the
OMG OMG may refer to: * Oh my God (sometimes also Oh my Goodness or Oh my Gosh), a common abbreviation, often used in SMS messages and Internet communication Acronyms * OMG is the IATA code for Omega Airport, Omega, Namibia * Operational manoeuvre ...
has defined two compliance points for MOF: *EMOF for Essential MOF *CMOF for Complete MOF In June 2006, a ''request for proposal'' was issued by OMG for a third variant, SMOF (Semantic MOF). The variant ECore that has been defined in the
Eclipse Modeling Framework Eclipse Modeling Framework (EMF) is an Eclipse (software), Eclipse-based Model-driven architecture, modeling framework and Automatic programming, code generation facility for building tools and other applications based on a structured data model. ...
is more or less aligned on OMG's EMOF. Another related standard is OCL, which describes a formal language that can be used to define model constraints in terms of
predicate logic First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quanti ...
. QVT, which introduces means to query, view and transform MOF-based models, is a very important standard, approved in 2008. See Model Transformation Language for further information.


International standard

MOF is an international standard: ;MOF 2.4.2 : ISO/ IEC 19508:2014 Information technology — Object Management Group Meta Object Facility (MOF) Core ;MOF 1.4 : ISO/ IEC 19502:2005 Information technology — Meta Object Facility (MOF) MOF can be viewed as a standard to write
metamodels A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
, for example in order to model the abstract syntax of
Domain Specific Language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
s. Kermeta is an extension to MOF allowing executable actions to be attached to EMOF meta-models, hence making it possible to also model a DSL operational semantics and readily obtain an interpreter for it. JMI defines a Java API for manipulating MOF models. OMG's MOF is not to be confused with the Managed Object Format (MOF) defined by the
Distributed Management Task Force Distributed Management Task Force (DMTF) is a 501(c)(6) nonprofit industry standards organization that creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, s ...
(DMTF) in section 6 of the Common Information Model (CIM) Infrastructure Specification, version 2.5.0.Common Interface Model (CIM) Interface Structure, version 2.5.0
/ref>


See also

* Common Warehouse Metamodel * Domain-specific language * Kermeta *
KM3 KM3 or Kernel Meta Meta Model is a neutral computer language to write metamodels and to define Domain Specific Languages. KM3 has been defined at INRIA and is available under the Eclipse platform. References ...
* Metamodeling * Metadata *
Model-driven architecture Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
* OGML * Platform-independent model *
Platform-specific model A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indi ...
* QVT * SPEM * XML Metadata Interchange


References


Further reading

*Official MOF specification from OMG *Ralph Sobek, MOF Specifications Documents *Johannes Ernst, ''What is metamodeling?'' *Woody Pidcock, ''What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?'' *Anna Gerber and Kerry Raymond, MOF to EMF and Back Again. *Weaving Executability into Object-Oriented Meta-Languages *MOF Support for Semantic Structures RFP Request For Proposal on SMOF


External links


OMG's MetaObject Facility
{{ISO standards Specification languages Data modeling Unified Modeling Language ISO standards